#!/usr/bin/env bash

# 设置默认服务列表
SERVICES=("user" "order" "api")

# 处理命令行参数
if [[ $# -gt 0 ]]; then
    IFS=',' read -r -a SERVICES <<< "$1"
fi

# 确保至少有一个服务
if [[ ${#SERVICES[@]} -eq 0 ]]; then
    echo "错误: 服务列表不能为空" >&2
    exit 1
fi

# 遍历服务列表并清理
for service in "${SERVICES[@]}"; do
    echo "清理服务: ${service}"

    # 停止并移除容器
    if docker ps -a | grep -q "${service}"; then
        echo "移除容器: ${service}"
        if ! docker rm -f "${service}" 2>/dev/null; then
            echo "警告: 移除容器 ${service} 失败" >&2
        fi
    else
        echo "容器 ${service} 不存在，跳过"
    fi

    # 移除镜像
    image_id=$(docker images -q "${service}")
    if [[ -n "${image_id}" ]]; then
        echo "移除镜像: ${service} (${image_id})"
        if ! docker rmi -f "${image_id}" 2>/dev/null; then
            echo "警告: 移除镜像 ${service} 失败" >&2
        fi
    else
        echo "镜像 ${service} 不存在，跳过"
    fi

    echo "---"
done

echo "清理完成!"

echo "容器列表"
docker ps -a

echo "镜像列表"
docker images
